package com.bana.fvs.protocol;

import com.bana.fvs.model.Controller;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;

public class QueryControllerTimer {

    public int getId()
    {
        return 0x1b;
    }
    public byte[] toBuffer(int kzqbsm,int timerIndex)
    {
        byte[] buffer=new byte[5];
        buffer[0]=(byte)0x81;
        buffer[1]=(byte)kzqbsm;
        buffer[2]=(byte)getId();
        buffer[3]=(byte)timerIndex;
        buffer[4]=(byte)0xff;
        return buffer;
    }

    public Controller toModel(byte[] buffer) throws IOException {
        ByteArrayInputStream bais = new ByteArrayInputStream(buffer);
        DataInputStream dis = new DataInputStream(bais);
        dis.skipBytes(1);
        Controller controller=new Controller();
        controller.setKzqbsm(dis.readByte());
        dis.skipBytes(1);
        controller.setTimeIndex(dis.readByte());
        if(controller.getTimeIndex()==1)
        {
            controller.setStartHour1(dis.readByte());
            controller.setStartMinute1(dis.readByte());
            controller.setStopHour1(dis.readByte());
            controller.setStopMinute1(dis.readByte());
            controller.setMonth1(dis.readByte());
            controller.setDay1(dis.readByte());
            controller.setWdkz1(dis.readByte());
            controller.setWdld1(dis.readByte());
            controller.setZkb1(dis.readByte()-1);
            controller.setHdys1(dis.readByte());
            controller.setMqys1(dis.readByte());
            controller.setHsjsdzsl1(dis.readByte());
            controller.setSfsyxl1(dis.readByte()==1);
        }
        else if(controller.getTimeIndex()==2)
        {
            controller.setStartHour2(dis.readByte());
            controller.setStartMinute2(dis.readByte());
            controller.setStopHour2(dis.readByte());
            controller.setStopMinute2(dis.readByte());
            controller.setMonth2(dis.readByte());
            controller.setDay2(dis.readByte());
            controller.setWdkz2(dis.readByte());
            controller.setWdld2(dis.readByte());
            controller.setZkb2(dis.readByte()-1);
            controller.setHdys2(dis.readByte());
            controller.setMqys2(dis.readByte());
            controller.setHsjsdzsl2(dis.readByte());
            controller.setSfsyxl2(dis.readByte()==1);
        }
        else if(controller.getTimeIndex()==3)
        {
            controller.setStartHour3(dis.readByte());
            controller.setStartMinute3(dis.readByte());
            controller.setStopHour3(dis.readByte());
            controller.setStopMinute3(dis.readByte());
            controller.setMonth3(dis.readByte());
            controller.setDay3(dis.readByte());
            controller.setWdkz3(dis.readByte());
            controller.setWdld3(dis.readByte());
            controller.setZkb3(dis.readByte()-1);
            controller.setHdys3(dis.readByte());
            controller.setMqys3(dis.readByte());
            controller.setHsjsdzsl3(dis.readByte());
            controller.setSfsyxl3(dis.readByte()==1);
        }
        dis.close();
        bais.close();
        return controller;
    }
}
